const { NAME_OR_PASSWORD_IS_REQURIED, NAME_IS_ALREADY_EXISTS } = require("../config/error-constants");
const userService = require("../service/user.service");
const md5Password = require("../utils/md5-password");

const verifyUser = async (ctx, next) => {
    // 2. 判断用户是否已经存在 
    // 2.1 验证用户名和密码是否为空
    const { name, password } = ctx.request.body;
    if (!name || !password) {
        return ctx.app.emit('error', NAME_OR_PASSWORD_IS_REQURIED, ctx)
    }
    // 2.2 判断用户名是否在数据库中已经存在
    const users = await userService.findUserByName(name);
    if (users.length) {
        return ctx.app.emit('error', NAME_IS_ALREADY_EXISTS, ctx)
    }
    // 2.3 执行下一个中间件
    await next()
}

// 加密密码中间件
const handlePassword = async (ctx, next) => {
    // console.log(ctx.request.body);
    // 1.取出密码
    const { password } = ctx.request.body
    // 2. 加密密码 再赋值给passsword
    ctx.request.body.password = md5Password(password);

    await next();
}


module.exports = {
    verifyUser,
    handlePassword
}